package pers.qianyu.module.comment.service;

import pers.qianyu.module.core.comm.Pagination;
import pers.qianyu.module.core.domain.comment.dto.CommentDTO;
import pers.qianyu.module.core.domain.comment.query.CommentQuery;
import pers.qianyu.module.core.domain.comment.vo.CommentVO;

import java.util.List;

public interface CommentService {

    /**
     * 根据评论对象 id 获取下面所有评论
     *
     * @param topicId 表示评论对象id
     * @return 评论对象列表
     */
    List<CommentVO> findCommentsByTopicId(Long topicId);

    /**
     * 插入一条评论
     *
     * @param commentDTO 评论传输对象
     */
    void insert(CommentDTO commentDTO);

    /**
     * 根据评论 id 查找评论
     *
     * @param id 评论 id
     * @return 查找结果
     */
    CommentVO findById(Long id);

    /**
     * 条件查询
     *
     * @param commentQuery 查询条件
     * @return 分页信息
     */
    Pagination<CommentVO> query(CommentQuery commentQuery);

    /**
     * 根据评论 ID 查询评论具体信息
     *
     * @param id 评论 ID
     */
    void deleteById(Long id);

    /**
     * 根据 topicId 删除
     * @param topicId topicId
     */
    void deleteByTopicId(Long topicId);
}
